<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
 * 后台角色模型
 */
class Admin_role_model extends SDF_Model
{
    var $title = '';
    var $content = '';
    var $date = '';

    /**
     * 角色模型初始化
     */
    function __construct(){
        $this->load->database();
        parent::__construct();
    }

    /**
     * 获取指定角色的权限id
     * @param $role_id
     * @param $soft_id
     * @return array
     */
    public function get_admin_access($role_id,$soft_id){
        $role_id =intval($role_id);
        if($role_id>0){
            $list = $this->db->get_where('admin_access',array('role_id'=>$role_id,'soft_id'=>$soft_id))->result_array();
            if(empty($list)){
                return array();
            }
            $data = array();
            foreach($list as $vo){
                $data[] = $vo['node_id'];
            }
            return $data;
        }
        return array();
    }

    /**
     * 插入角色权限
     * @param $role_id
     * @param $node_ids
     * @param $soft_id
     * @return bool
     */
    public function insert_admin_access($role_id,$node_ids,$soft_id){
        $role_id =intval($role_id);
        $this->db->delete('admin_access', array('role_id' => $role_id,'soft_id'=>$soft_id));
        $data = array();
        if($role_id >0 and is_array($node_ids) and count($node_ids)>0){
            foreach($node_ids as $node_id){
                $data[] = array(
                    'role_id'=>$role_id,
                    'node_id'=>$node_id,
                    'soft_id'=>$soft_id
                );
            }
            if(!$this->db->insert_batch('admin_access', $data)){
                return false;
            }
        }
        return true;
    }

    /**
     * 获取角色的用户
     * @param $role_id
     * @return array
     */
    public function get_admin_role_user($role_id){
        $role_id =intval($role_id);
        if($role_id>0){
            $data = $this->db->select('id,role_id,account,nickname')->join('admin_role_user','admin_user.id=admin_role_user.user_id AND '.$this->db->dbprefix.'admin_role_user.role_id = '.$role_id,'left')->get('admin_user')->result_array();
            if(empty($data )){
                return array();
            }
            return $data;
        }
        return array();
    }
    /**
     * 插入角色用户
     * @param $role_id
     * @param $user_ids
     * @return bool
     */
    public function insert_admin_role_user($role_id,$user_ids){
        $role_id =intval($role_id);
        $this->db->delete('admin_role_user', array('role_id' => $role_id));
        $data = array();
        if($role_id >0 and is_array($user_ids) and count($user_ids)>0){
            foreach($user_ids as $user_id){
                $data[] = array(
                    'role_id'=>$role_id,
                    'user_id'=>$user_id
                );
            }
            if(!$this->db->insert_batch('admin_role_user', $data)){
                return false;
            }
        }
        return true;
    }



}